package io.scnb.lesson001.demo26.test3;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class Service2 {
    
    private Service1 service1;
    
    // @Autowired标注在方法参数上
    // 多个参数的时候，@Autowired默认对方法中的所有参数起效，如果想对某个参数进行特定的配置
    // 可以在参数上加上@Autowired，这个配置会覆盖方法上面的@Autowired配置
    @Autowired
    public void injectService1(Service1 service1, @Autowired(required = false) String name) {
        System.out.println(String.format("%s.injectService1(), {service1=%s,name=%s}", this.getClass().getName(),
                service1, name));
        this.service1 = service1;
    }

    @Override
    public String toString() {
        return "Service2{" +
                "service1=" + service1 +
                '}';
    }
}
